#ifndef uBarreH
#define uBarreH

#include <vcl\Classes.hpp>
#include <vcl\Controls.hpp>
#include <vcl\StdCtrls.hpp>
#include <vcl\Forms.hpp>
#include <vcl\ComCtrls.hpp>
#include <vcl\ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Buttons.hpp>


class CSablier;

class TfrmBarre : public TForm
{
 __published:
    TProgressBar *pb;
    TLabel *lblMsg0;
    TImage *imgMsg0;
    TImage *imgDone;
    TLabel *lblMsgInfo;
  TLabel *lblMsgInfo2;
  TProgressBar *pb2;
  TBitBtn *bAnnuler;
    void __fastcall FormShow(TObject *Sender);
    void __fastcall FormHide(TObject *Sender);
  void __fastcall bAnnulerClick(TObject *Sender);
 private:
  HWND  m_hwndActive;      // Fenêtre active au moment de la création de la barre
  void* m_pvTaskWindows;   // Fenêtres de la tâche qui sont désactivées pendant la progression
  int   m_nNbMessages;     // Nombre de messages dans la barre de progression
  int   m_nCurrentMessage; // N° du message en cours de progression (0 à m_nNbMessages - 1; -1 = aucun)
  CSablier *m_Sablier;
  void __fastcall SetMessages( const AnsiString& strMessages);
 public:
  bool m_Annule;
  __property AnsiString Messages       = { write = SetMessages};
  __property int        NbMessages     = { read = m_nNbMessages};
  __property int        CurrentMessage = { read = m_nCurrentMessage};
  void __fastcall PrepareNextMessage();
  __fastcall TfrmBarre( TForm* pfrmOwner);
  virtual __fastcall ~TfrmBarre();
};

#endif
